package com.sss.hloster03;

import java.util.Scanner;

public class StudentMaster {
	// 属性
	// 学生信息集合对象
	private Student[] arrStus;
	// 行为

	public StudentMaster() {
		super();
		init();
	}

	public  void showScore() {
		//初始化
		//init;
		
		//排序
		bubbleSort();
		//打印信息
		printArr();
		
	}

	// 数据录入行为
	private void init() {
		// 准备数据
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入班级学生人数：");
		// 学生人数
		int count = sc.nextInt();
		// 根据学生人数创建学生数组
		// 此处初始化的是成员变量，而不是局部变量
		arrStus = new Student[count];
		// 添加数据（可以控制台输入）
		for (int i = 0; i < count; i++) {
			// 输入参数
			System.out.println("请输入第    " + (i + 1) + " 个学生的姓名：");
			String strName = sc.next();
			System.out.println("请输入第    " + (i + 1) + " 个学生的学号：");
			String strNum = sc.next();
			System.out.println("请输入第    " + (i + 1) + " 个学生的成绩：");
			double fScore = sc.nextDouble();
			// 根据输入的参数，构建一个学生对象实例
			Student stu = new Student(strName, strNum, fScore);
			// 把创建的学生对象，放到学生数组中
			arrStus[i] = stu;
		}
	}

	// 排序行为
	/**
	 * 冒泡算法--从小到大
	 */
	public void bubbleSort() {
		// 外层for循环：轮数
		for (int i = 0; i < arrStus.length; i++) {
			// 内层for循环：完成两两比较交换
			for (int j = 0; j < arrStus.length - 1 - i; j++) {
				// 两两比较交换，排序规则：从大到小
				if (arrStus[j].getStuScore() < arrStus[j + 1].getStuScore()) {
					// 两个数进行交换
					Student temp = arrStus[j];
					arrStus[j] = arrStus[j + 1];
					arrStus[j + 1] = temp;
				}
			}
		}
	}

	// 学生信息输出行为
	/**
	 * 打印数组
	 */
	public void printArr() {
		for (Student i : arrStus) {
			i.prinMe();
		}
		// 换行
		System.out.println();
	}
}
